package edu.smxy.associationmanagement.mapper;

import edu.smxy.associationmanagement.domain.Association;
import edu.smxy.associationmanagement.domain.Event;

import java.util.List;
/**
* Event Mybatis接口定义
* @date  2019/04/18
* @author: : SDH
* @description: 通知事件 Mybatis接口定义
*/
public interface EventMapper {
	/**
	 *  根据id删除某通知
	 * @param eventid 通知id
	 * @return 数据库受影响的行数
	 */
	int deleteByPrimaryKey(final Integer eventid);
	
	/**
	 *  插入Event数据
	 * @param record Event对象
	 * @return 数据库受影响的行数
	 */
	int insert(final Event record);
	
	/**
	 * 插入Event数据 收集材料类型
	 * @param record Event对象
	 * @return 数据库受影响的行数
	 */
	int insertFile(final Event record);
	
	/**
	 * 添加通知
	 * @param record Event对象
	 * @return 数据库受影响的行数
	 */
	int addNotice(final Event record);
	
	/**
	 * 安全插入Event数据
	 * @param record Event对象
	 * @return 数据库受影响行数
	 */
	int insertSelective(final Event record);
	
	/**
	 * 根据id查询Event数据
	 * @param eventid id
	 * @return 查询到的Event对象
	 */
	Event selectByPrimaryKey(final Integer eventid);
	
	/**
	 * 安全更新Event数据
	 * @param record Event对象
	 * @return 数据库受影响的行数
	 */
	int updateByPrimaryKeySelective(final Event record);
	
	/**
	 * 更新Event数据
	 * @param record Event对象
	 * @return 数据库受影响的行数
	 */
	int updateByPrimaryKey(final Event record);
	
	/**
	 * 获得所有类型为通知的Event
	 * @return List<Event> Event对象集合
	 */
	List<Event> getAllEvent();
	
	/**
	 * 获得处于通知时间内的通知数据
	 * @return List<Event> Event对象集合
	 */
	List<Event> getAllEventInTime();
	
	/**
	 * 根据协会id获得为上传材料列表
	 * @param assid 协会id
	 * @return List<Event> Event对象集合
	 */
	List<Event> getAllFileNosubmit(final Integer assid);
	
	/**
	 * 获得所有材料收集列表
	 * @return List<Event> Event对象集合
	 */
	List<Event> getAllFileEvent();
	
	/**
	 * 根据Event的id获得所有未上传该材料收集项的协会集合
	 * @param eventid Event id
	 * @return List<Association> Association对象集合
	 */
	List<Association> getAllAssWithoutSubmitByEventId(final Integer eventid);
}
